1. Field of the Invention
The present invention relates to a method of data transmission and a system using it, and in particular relates to a method of data transmission and a system using it for performing contention control among attempts of data transmission in the case where plural data transmission attempts are executed on a shared transmission medium on a computer network.
2. Discussion of the Related Art
A computer network consists of at least one transmission medium and a plurality of terminals connected thereto. Attempts of data transmission among these terminals are conducted through the transmission medium. Transmission capability of the transmission medium is called transmission bandwidth which is represented as an amount of data transmitted per unit time. The transmission bandwidth has a limit:, and the maximum transmission bandwidth Rmax is a fixed finite value.
In a computer network, generally, a single transmission medium is used for plural attempts of data transmission to hold down the cost of structuring and maintaining the network to the minimum of necessity. If a bandwidth used by each data transmission attempt i at an arbitrary time point t is assumed to be ri (t) (i=1, 2, . . . , n), and the total is assumed to be .SIGMA.ri (t), there occurs a shortage of the transmission bandwidth of the transmission medium in the case of Rmax&lt;.SIGMA.ri (t), which results in a scramble for the transmission bandwidth. This is called contention for the transmission bandwidth.
If the contention occurs, data which could not gain a necessary bandwidth is lost. In the case the data is lost, re-transmission of the data is executed in general. However, this is a cause for deterioration in efficiency of use of the bandwidth =an amount of data successfully transmitted/bandwidth required for successful data transmission .times. time required for successful data transmission!. To efficiently utilize the finite maximum transmission bandwidth of the transmission medium, it is necessary to avoid the loss of data caused by the contention. The factors of deterioration in efficiency of use of the bandwidth are data transmitted for transmission control (protocol control), bandwidth which is not used for some reason related to the control, a time zone where transmission is not conducted, and so forth, as well as the data re-transmitted, namely, the data transmitted repeatedly.
An application on each terminal which executes data transmission in the network normally operates independently. Each of the applications is irrelevant to the state of data transmission of the other applications at all, and makes an attempt of data transmission completely independent of each other. Some of the applications provide timing of data transmission by human triggering, such as "telnet". Therefore, it is impossible to perform centralized prediction and administration of the states of a plurality of data transmission attempts (starting time, ending time, bandwidth to be used or the like) made by all these applications as a whole.
To avoid the contention, conventionally, information about the states of use of the transmission bandwidth which change every moment has been fed back to a sending control mechanism for each data transmission attempt from an observing point for use of the bandwidth, and thereby a control has been conducted so that difference between the available bandwidth R(t) obtained from the fed back information and the actually used bandwidth r(t), .vertline.R(t)-r(t).vertline., becomes zero.
However, in the actual network, there is a distance L between the observing point and the controlling point; accordingly, there occurs at least propagation delay .DELTA.t=distance L/velocity of light c&gt;0 in the propagation of fed back information between them. As a result, it is impossible to accurately reduce the value of .vertline.R(t)-r(t).vertline. to zero. In the case of (R(t)-r(t))&gt;0, there are unused wasteful bandwidths, and in the case of (R(t)-r(t))&lt;0, the loss of the data occurs. That is, the using efficiency is declined in either of the cases. In the latter case, a buffer can be disposed on the transmission path, whereby the loss of the data can be avoided if the data amount is less than the capacity of the buffer. However, since the capacity of the buffer is limited, there is still a possibility of loss of the data if a large number of data transmission requests are made at once.
As to the file transfer, printing service or the like among the applications performing data transmission, there are the following features:
(1) the data to be transmitted is held in the sending terminal before the transmission is started, and the amount of data is already known;
(2) in general, transmission controlling information such as the amount of data is exchanged between the sending terminal and the receiving terminal before the transmission is started;
(3) because the data to be transmitted is already held in the sending terminal, it is possible to control the transmission rate to be adopted;
(4) an acceptable range for the transmission delay is relatively wide; and
(5) in a client-server type application, such as filing service or printing service, all pieces of data to be transmitted concentrate on the server.
Paying attention to these features, the applicant of the present invention has proposed a data transmission system and method for contention control of data transmission attempts (Japanese Patent Application No. 8-17949). In the proposal, it has been made possible to increase the efficiency of use of the bandwidth by performing centralized control of the order of data transmission attempts , bandwidths to be used, and so on, in advance, based on the data transmission controlling information for avoiding the contention.
Here, the proposal is described at first. FIG. 1 shows the method for contention control of data transmission attempts as a whole. The fundamental constituents of the computer network to which the contention control method is applied are: a data sending unit 1; a data receiving unit 2; a data transmission controlling unit 3 for accumulating pieces of information of all data transmission attempts and executing centralized administration; and a transmission medium 4 for connecting these units. There is only one data transmission control unit 3 for the transmission medium 4 shared by the plural attempts of data transmission. If there is only one data receiving unit 2 for the shared transmission medium 4, it is possible to integrate the data receiving unit 2 with the data transmission control unit 3. If there are plural data receiving units 2, the data transmission control unit 3 is required to be independent of at least a part of the plural data receiving units 2.
FIG. 2 shows an example of construction of each unit shown in FIG. 1. Here, the data transmission controlling unit 3 is assumed to be contained in the data receiving unit 2. The explanation for each unit is as follows.
(1) The data sending unit 1
The data sending unit 1 comprises a data transmission direction receiving element 5, a data sending controlling element 6, a data sending element 7, and so forth. The data transmission direction receiving element 5 receives a direction of data transmission sent by a data transmission direction sending element 10 of the data receiving unit 2. The data sending controlling element 6 controls starting or ending of data transmission attempt made by the data sending element 7, bandwidth to be used or the like in accordance with the direction of data transmission received by the data transmission direction receiving element 5. The data sending element 7 sends data to the data receiving unit 2 under the control of the data sending controlling element 6.
(2) The data receiving unit 2 (integrated with the data transmission controlling unit 3)
The data receiving unit 2 comprises a data transmission controlling information acquiring element 8, a data transmission controlling element 9, the data transmission direction sending element 10, a data receiving element 11, and so forth. The data transmission controlling information acquiring element 8 acquires necessary information among the pieces of data transmission controlling information exchanged between the sending unit and receiving unit before/during/after each of all attempts of data transmission. For example, before data transmission, the data transmission controlling information acquiring element 8 acquires information such as an identifier of the data sending unit 1, the amount of data to be transmitted, or the like. The data transmission controlling element 9 determines the time when the data transmission shown by the content of the data transmission controlling information becomes possible and an available transmission bandwidth based on the data transmission controlling information acquired by the data transmission controlling information acquiring element 8 and the states of use of the bandwidth by the data transmission now under execution. The data transmission direction sending element 10 sends the data transmission direction including the content of determination by the data transmission controlling element 9 to the data sending unit 1. The data receiving element 11 receives the data sent by the data sending unit 1.
In the case where a next data transmission is requested before the completion of data transmission now under execution, it is generally performed that the data transmission controlling unit 3 provides the direction for sending to the sending element which will execute the next data transmission after the completion of the preceding data transmission is detected (hereinafter, such method is referred to as handshaking). The similar method is also adopted by the construction example shown in FIG. 2. That is, the data transmission controlling element 9 detects the completion of data transmission by observing the state of transmission or by using a timer to determine a mode of the next data transmission, namely, the bandwidth to be used, the time of starting the data transmission and so forth, and then sends the direction for transmission to the relevant sending unit 1.
If data transmission requests are made by a couple of data sending units 1A and 1B as shown in FIG. 3 to the receiving unit 2 (integrated with the data transmission controlling unit 3), operations according to the handshaking are as shown in a flow chart in FIG. 4. There is a time interval T between the completion of preceding data transmission by the sending unit 1A and the start of next data transmission by the sending unit 1B. Hereinafter, the time T is referred to as a handshaking time. The handshaking time T is roughly classified into the following two parts.
t1: a time from the time point when the receiving unit 2 receives the last data from the sending unit 1A, detects the completion of transmission, determines and sends the direction for sending to the time point when the sending unit 1B receives the direction.
t2: a time from the time point when the sending unit 1B receives the direction for sending to the time point when the receiving unit 2 receives the first data prepared and sent by the sending unit 1B.
The handshaking time consisting of the above two parts of time is inevitable in the case where the handshaking is adopted.
If the handshaking is applied to procedures for changing the bandwidth to be used for an attempt of data transmission subsequent to the completion of another data transmission in a state where plural attempts of data transmission are executed by bandwidth division, the handshaking time as same as described above is generated. FIG. 5 is a flow chart showing the operations in the case.
In a terminal to which the pieces of data transmission controlling information are concentrated (a data transmission controlling unit), and in particular, in the case where the contention control method of performing centralized administration of plural data transmission attempts is adopted, if the procedures for starting data transmission and changing the bandwidth according to the completion of an attempt of data transmission are executed, the handshaking time is necessarily generated. During the handshaking time, data transmission from the sending unit to the receiving unit is not carried out, and as a result, there occurs unused bandwidth. Consequently, the handshaking time is a cause of reduction of efficiency of use of the bandwidth.